perm filename JOLLY.MAC[C,JRA]1 blob sn#012877 filedate 1972-11-16 generic text, type T, neo UTF8
COMMENT ⊗   VALID 00002 PAGES 
RECORD PAGE   DESCRIPTION
 00001 00001
 00002 00002	TITLE A NOT SO WONEREOUS KLUGE
 00006 ENDMK
⊗;
TITLE A NOT SO WONEREOUS KLUGE

 A=1
B=2
P=14
INTERN MACIT,UNMACIT,CONIVE,UNCNVIT
EXTERN EVAL,CHRTAB,READ,XCONS,NCONS,OLDCH,RATOM,TYI
EXTERN CNVAT,CNVCOL,CNVCOM,CNVQUO
EXTERN CNVEL,CNVEG,CNVEQS,CNVEQU,CNVEA,CNVEC,CNVES,CNVDQ
IAP3=5240
APBK2=5171
READ1=READ+5
MACIT:	MOVE A,[XWD 652704,0]
	MOVEM A,CHRTAB+42
	MOVEM A,CHRTAB+100
	MOVE A,[XWD 422705,200000]
	MOVEM A,CHRTAB+47
	MOVEI B,PREVAL
MAC1:	MOVE A,[PUSHJ P,READ1]
MAC2:	MOVEM A,RATOM-6
	HRRM B,APBK2+2
	HRRM B,APBK2+6
	HRRM B,IAP3+10
	SETZM ,A
	POPJ P,0

UNCNVIT:
UNMACIT: MOVE A,[XWD 112444,0]
	MOVEM A,CHRTAB+42
	MOVE A,[XWD 652704,0]
	MOVEM A,CHRTAB+72
	MOVEM A,CHRTAB+41
	MOVEM A,CHRTAB+47
	MOVE A,[XWD 422705,200000]
	MOVEM A,CHRTAB+100
	MOVE A,[XWD 32644,0]
	MOVEM A,CHRTAB+54
	MOVEI B,EVAL
	JRST MAC1
PR1:	HLRZ A,(B)
PREVAL:	PUSH P,B
	PUSHJ P,EVAL
	POP P,B
	HRRZ B,(B)
	JUMPN B,PR1
	POPJ P,0

CONIVE:	MOVE A, [XWD 422705,200000]
	MOVEM A,CHRTAB+100
	MOVEM A,CHRTAB+72
	MOVEM A,CHRTAB+47
	MOVEM A,CHRTAB+41
	MOVEM A,CHRTAB+54
	MOVE A,[JRST PREFIX]
	MOVEI B,PREVAL
	JRST MAC2


PREFIX:CAIN A,":"
	JRST COL
	CAIN A,"'"
	JRST QUOTE
	CAIN A,"@"
	JRST AT
	CAIN A,","
	JRST COM
	PUSHJ P,TYI
	CAIN A,42	;" 
	JRST DQ
	CAIN A,"<"
	MOVEI B,CNVEL
	CAIN A,">"
	MOVEI B,CNVEG
	CAIN A,"?"
	MOVEI B,CNVEQS
	CAIN A,"'"
	MOVEI B,CNVEQU
	CAIN A,"@"
	MOVEI B,CNVEA
	CAIN A,","
	MOVEI B,CNVEC
	CAIN A,";"
	MOVEI B,CNVES
	PUSH P,B
	PUSHJ P,TYI
	MOVEM A,OLDCH
	CAIN A,"("
        JRST AT+1
	CAIE A,")"
	CAIN A," "
	JRST NILIT
	CAIE A,11
	JRST QUOT+2
NILIT:
	SETZM,A
	JRST QUO1-1

COM:	MOVEI B,CNVCOM
	JRST QUOT+1

DQ:	PUSHJ P,READ1
	MOVEI B,CNVDQ
	JRST XCONS

AT:	MOVEI B,CNVAT
	PUSHJ P,READ1

	JRST QUO1

COL:	MOVEI B,CNVCOL
	JRST QUOT+1

QUOT:	MOVEI B,CNVQUO
	PUSH P,B
	PUSHJ P,READ1
	PUSHJ P,NCONS
QUO1:	POP P,B
	JRST XCONS

QUOTE:	PUSHJ P,READ1
	JRST RATOM-5

END